hadoop ssh实现无密码启动

使用ssh实现无密码启动hdfs

如果一个集群都使用密码来登录,可想而知是一件十分害怕的事情,所以就很有必要使用ssh来实现无密码登录了

本机的免密码启动hdfs

  1. 检查本机.ssh文件中是否有authorized_keys文件,没有则创建并且修改权限,修改权限,修改权限
    1
    2
    3
    cd .ssh
    touch authorized_keys
    chmod 600 authorized_keys
  1. 产生密钥对,输入下面命令之后会提示三次,这三次什么提示都不要输入任何字符,不要输入任何字符..不要输入任何字符
    1
    ssh-keygen -t rsa

使用ll命令可以在文件夹中至少看到下面的信息

1
2
3
-rw-------. 1 hadoop hadoop 602 Nov 19 03:08 authorized_keys
-rw-------. 1 hadoop hadoop 1675 Nov 19 03:30 id_rsa
-rw-r--r--. 1 hadoop hadoop 394 Nov 19 03:30 id_rsa.pub

其中,id_rsa为私钥,id_rsa.pub为公钥。接下来要做的一步就是把id_rsa.pub添加到authorized_keys文件中

1
cat id_rsa.pub >> authorized_keys

  1. 启动hdfs,测试是否正确

集群实现免密码登录

准备工作

  • 保证每台节点中的用户名相同(例如都为spark)。如果没有,则创建。

    不要直接使用 root 用户。请为集群单独创建用户。

将用户添加至 sudoer 列表

  1. 切换到 root 用户(su -)。
  2. 使用 visudo 命令,添加 spark 用户到 sudoer 列表。

    1
    2
    3
    # 在 root 用户之后添加(请根据实际情况赋予权限)
    root ALL=(ALL) ALL
    spark ALL=(ALL) ALL
  3. 保存退出。

    远程拷贝id_rsa.pub给所有主机

  4. 把刚刚生成的id_rsa.pub远程拷贝给所有主机,我们这里另外一台机器名spark01

    1
    scp id_rsa.pub spark01:/home/hadoop/.ssh
  5. 登录spark01,把id_rsa.pub添加进authorized_keys中

    1
    cat id_rsa.pub >> authorized_keys